//
//  UIImage+Extenstion.swift
//  CustomWeiBo
//
//  Created by laiqiang on 21/5/10.
//  Copyright © 2021年 laiqiang. All rights reserved.
//

import UIKit

extension UIImage {

    
    //png 图片 （影响效率：圆角 ，拉伸）
    //不使用 圆角半径 ，不使用图片拉伸，效率低下。 重新绘制 目标大小的图片 效率高。
    func avatarImage(image:UIImage, size:CGSize?,backColor:UIColor = UIColor.white, linecolor:UIColor = UIColor.lightGray) -> UIImage? {
        
        var size = size
        if size == nil {
            size = self.size//没有size 使用自己的size
        }
        
        
        let rect = CGRect(origin: CGPoint(), size: size!)
        
        //租一间 工作室  true＝不透明 需要用
        UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
        
        //填充 图片的 背景色颜色
        backColor.setFill()//声明颜色成为填充色
        UIRectFill(rect)//填充区域
        
        //绘制圆型路径 内切的圆－－ 指定区域内创建路径 贝斯曲线  圆形的
        let path = UIBezierPath(ovalIn: rect)//true 外部会有黑色的边脚 ，需要裁切前，填充颜色
        
        path.addClip()//后面的绘制，都会在 路径内部 ，外部删除（存在背景色颜色，整张图片不透明）
        
        //绘制内切的圆形 边线
        UIColor.darkGray.setStroke()//声明 颜色用于 绘制边线
        path.lineWidth = 2//线的宽度
        path.stroke()//在 路径的内部 绘制边线
        
        //--------------------------------------------------
        //在指定 区域内 重新绘制 图片
        image.draw(in: rect)
        
        //获取 当前区域内 绘制的图片 get graphic
        let result = UIGraphicsGetImageFromCurrentImageContext()
        //--------------------------------------------------
        
        //退掉 工作室
        UIGraphicsEndImageContext()
        
        return result!
    }
    //    jpg 效率好，但是“拉伸”也会影响性能。需要 优化
    
}
